Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Jun 11, 2025

This PR contains the following updates:

Package Change Age Confidence
coverage ==7.8.2 -> ==7.12.0 age confidence

Release Notes

coveragepy/coveragepy (coverage)

v7.12.0

Compare Source

  • The HTML report now shows separate coverage totals for statements and
    branches, as well as the usual combined coverage percentage. Thanks to Ryuta
    Otsuka for the discussion <issue 2081_>_ and the implementation <pull 2085_>_.

  • The JSON report now includes separate coverage totals for statements and
    branches, thanks to Ryuta Otsuka <pull 2090_>_.

  • Fix: except* clauses were not handled properly under the "sysmon"
    measurement core, causing KeyError exceptions as described in issue 2086_.
    This is now fixed.

  • Fix: we now defend against aggressive mocking of open() that could cause
    errors inside coverage.py. An example of a failure is in issue 2083_.

  • Fix: in unusual cases where a test suite intentionally exhausts the system's
    file descriptors to test handling errors in open(), coverage.py would
    fail when trying to open source files, as described in issue 2091_. This
    is now fixed.

  • A small tweak to the HTML report: file paths now use thin spaces around
    slashes to make them easier to read.

.. _issue 2081: #​2081
.. _issue 2083: #​2083
.. _pull 2085: #​2085
.. _issue 2086: #​2086
.. _pull 2090: #​2090
.. _issue 2091: #​2091

.. _changes_7-11-3:

v7.11.3

Compare Source

  • Fix: the 7.11.1 changes meant that conflicts between a requested measurement
    core and other settings would raise an error. This was a breaking change from
    previous behavior, as reported in issue 2076_ and issue 2078_.

    The previous behavior has been restored: when the requested core conflicts
    with other settings, another core is used instead, and a warning is issued.

  • For contributors: the repo has moved from Ned's nedbat GitHub account_ to
    the coveragepy GitHub organization_. The default branch has changed from
    master to main.

.. _issue 2076: #​2076
.. _issue 2078: #​2078
.. _nedbat GitHub account: https://github.com/nedbat
.. _coveragepy GitHub organization: https://github.com/coveragepy

.. _changes_7-11-2:

v7.11.2

Compare Source

  • Fix: using the "sysmon" measurement core in 7.11.1, if Python code was
    claimed to come from a non-Python file, a NotPython exception could be
    raised. This could happen for example with Jinja templates compiled to
    Python, as reported in issue 2077_. This is now fixed.

  • Doc: corrected the first entry in the 7.11.1 changelog.

.. _issue 2077: #​2077

.. _changes_7-11-1:

v7.11.1

Compare Source

  • Fix: some chanages to details of how the measurement core is chosen, and how
    conflicting settings are handled. The "sysmon" core cannot be used with some
    conurrency settings, with dynamic context, and in Python 3.12/3.13, with
    branch measurement.

    • If the core is not specified and defaults to "sysmon" (Python 3.14+), but
      other settings conflict with sysmon, then the "ctrace" core will be used
      instead with no warning. For concurrency conflicts, this used to produce an
      error, as described in issue 2064_.

    • If the "sysmon" core is explicitly requested in your configuration, but
      other settings conflict, an error is now raised. This used to produce a
      warning.

  • Fix: some multi-line case clauses or for loops (and probably other
    constructs) could cause incorrect claims of missing branches with the
    sys.monitoring core, as described in issue 2070_. This is now fixed.

  • Fix: when running in pytest under coverage, a breakpoint() would stop in
    the wrong frame, one level down from where it should, as described in issue 1420_. This was due to a coverage change in v6.4.1 that seemed to give a
    slight performance improvement, but I couldn't reproduce the performance
    gain, so it's been reverted, fixing the debugger problem.

  • A new debug option --debug=core shows which core is in use and why.

  • Split sqlite debugging information out of the sys :ref:coverage debug <cmd_debug> and :ref:cmd_run_debug options since it's bulky and not
    very useful.

  • Updated the :ref:howitworks page to better describe the three different
    measurement cores.

.. _issue 1420: #​1420
.. _issue 2064: #​2064
.. _issue 2070: #​2070

.. _changes_7-11-0:

v7.11.0

Compare Source

  • Dropped support for Python 3.9, declared support for Python 3.15 alpha.

.. _changes_7-10-7:

v7.10.7

Compare Source

  • Performance: with branch coverage in large files, generating HTML, JSON, or
    LCOV reports could take far too long due to some quadratic behavior when
    creating the function and class index pages. This is now fixed, closing
    issue 2048_. Thanks to Daniel Diniz for help diagnosing the problem.

  • Most warnings and a few errors now have links to a page in the docs
    explaining the specific message. Closes issue 1921_.

.. _issue 1921: #​1921
.. _issue 2048: #​2048

.. _changes_7-10-6:

v7.10.6

Compare Source

  • Fix: source directories were not properly communicated to subprocesses
    that ran in different directories, as reported in issue 1499_. This is now
    fixed.

  • Performance: Alex Gaynor continues fine-tuning <pull 2038_>_ the speed of
    combination, especially with many contexts.

.. _issue 1499: #​1499
.. _pull 2038: #​2038

.. _changes_7-10-5:

v7.10.5

Compare Source

  • Big speed improvements for coverage combine: it's now about twice as
    fast! Huge thanks to Alex Gaynor for pull requests 2032 <pull 2032_>,
    2033 <pull 2033_>
    , and 2034 <pull 2034_>_.

.. _pull 2032: #​2032
.. _pull 2033: #​2033
.. _pull 2034: #​2034

.. _changes_7-10-4:

v7.10.4

Compare Source

  • Added patch = fork for times when the built-in forking support is
    insufficient.

  • Fix: patch = execv also inherits the entire coverage configuration now.

.. _changes_7-10-3:

v7.10.3

Compare Source

  • Fixes for patch = subprocess:

    • If subprocesses spawned yet more subprocesses simultaneously, some coverage
      could be missed. This is now fixed, closing issue 2024_.

    • If subprocesses were created in other directories, their data files were
      stranded there and not combined into the totals, as described in issue 2025_. This is now fixed.

    • On Windows (or maybe only some Windows?) the patch would fail with a
      ModuleNotFound error trying to import coverage. This is now fixed,
      closing issue 2022_.

    • Originally only options set in the coverage configuration file would apply
      to subprocesses. Options set on the coverage run command line (such as
      --branch) wouldn't be communicated to the subprocesses. This could
      lead to combining failures, as described in issue 2021_. Now the entire
      configuration is used in subprocesses, regardless of its origin.

    • Added debug=patch to help diagnose problems.

  • Fix: really close all SQLite databases, even in-memory ones. Closes issue 2017_.

.. _issue 2017: #​2017
.. _issue 2021: #​2021
.. _issue 2022: #​2022
.. _issue 2024: #​2024
.. _issue 2025: #​2025

.. _changes_7-10-2:

v7.10.2

Compare Source

  • Fix: some code with NOP bytecodes could report missing branches that are
    actually executed. This is now fixed, closing issue 1999_. Python 3.9
    still shows the problem.

.. _issue 1999: #​1999

.. _changes_7-10-1:

v7.10.1

Compare Source

  • Fix: the exclusion for if TYPE_CHECKING: was wrong: it marked the branch
    as partial, but it should have been a line exclusion so the entire clause
    would be excluded. Improves issue 831_.

  • Fix: changed where .pth files are written for patch = subprocess, closing
    issue 2006_.

.. _issue 2006: #​2006

.. _changes_7-10-0:

v7.10.0

Compare Source

  • A new configuration option: ":ref:config_run_patch" specifies named patches
    to work around some limitations in coverage measurement. These patches are
    available:

    • patch = _exit lets coverage save its data even when :func:os._exit() <python:os._exit> is used to abruptly end the process. This closes
      long-standing issue 310_ as well as its duplicates: issue 312, issue 1673, issue 1845, and issue 1941.

    • patch = subprocess measures coverage in Python subprocesses created
      with :mod:subprocess, :func:os.system, or one of the :func:execv <python:os.execl> or :func:spawnv <python:os.spawnl> family of
      functions. Closes old issue 367, its duplicate issue 378 and old
      issue 689_.

    • patch = execv adjusts the :func:execv <python:os.execl> family of
      functions to save coverage data before ending the current program and
      starting the next. Not available on Windows. Closes issue 43_ after 15
      years!

  • The HTML report now dimly colors subsequent lines in multi-line statements.
    They used to have no color. This gives a better indication of the amount of
    code missing in the report. Closes issue 1308_.

  • Two new exclusion patterns are part of the defaults: ... is automatically
    excluded as a line and if TYPE_CHECKING: is excluded as a branch. Closes
    issue 831_.

  • A new command-line option: --save-signal=USR1 specifies a signal that
    coverage.py will listen for. When the signal is sent, the coverage data will
    be saved. This makes it possible to save data from within long-running
    processes. Thanks, Arkady Gilinsky <pull 1998_>_.

  • A new configuration option: ":ref:config_report_partial_also" is a list of
    regexes to add as pragmas for partial branches. This parallels the
    ":ref:config_report_exclude_also" setting for adding line exclusion
    patterns.

  • A few file path configuration settings didn't allow for tilde expansion:
    :ref:config_json_output, :ref:config_lcov_output and
    :ref:config_run_debug_file. This is now fixed.

  • Wheels are included for 3.14 now that 3.14 rc1 is available.

  • We no longer ship a PyPy-specific wheel. PyPy will install the pure-Python
    wheel. Closes issue 2001_.

  • In the very unusual situation of not having a current frame, coverage no
    longer crashes when using the sysmon core, fixing issue 2005_.

.. _issue 43: #​43
.. _issue 310: #​310
.. _issue 312: #​312
.. _issue 367: #​367
.. _issue 378: #​378
.. _issue 689: #​689
.. _issue 831: #​831
.. _issue 1308: #​1308
.. _issue 1673: #​1673
.. _issue 1845: #​1845
.. _issue 1941: #​1941
.. _pull 1998: #​1998
.. _issue 2001: #​2001
.. _issue 2005: #​2005

.. _changes_7-9-2:

v7.9.2

Compare Source

  • Fix: complex conditionals within a line might cause a KeyError when using
    sys.monitoring, as reported in issue 1991_. This is now fixed.

  • Fix: we can now measure coverage for code in Python archive (.par) files.
    Thanks, Itamer Oren <pull 1984_>_.

.. _pull 1984: #​1984
.. _issue 1991: #​1991

.. _changes_7-9-1:

v7.9.1

Compare Source

  • The "no-ctracer" warning is not issued for Python pre-release versions.
    Coverage doesn't ship compiled wheels for those versions, so this was far too
    noisy.

  • On Python 3.14+, the "sysmon" core is now the default if it's supported for
    your configuration. Plugins and dynamic contexts are still not supported
    with it.

.. _changes_7-9-0:

v7.9.0

Compare Source

  • Added a [run] core configuration setting to specify the measurement core,
    which was previously only available through the COVERAGE_CORE environment
    variable. Finishes issue 1746_.

  • Fixed incorrect rendering of f-strings with doubled braces, closing issue 1980_.

  • If the C tracer core can't be imported, a warning ("no-ctracer") is issued
    with the reason.

  • The C tracer core extension module now conforms to PEP 489, closing issue 1977. Thanks, Adam Turner <pull 1978_>_.

  • Fixed a "ValueError: min() arg is an empty sequence" error caused by strange
    empty modules, found by oss-fuzz_.

.. _issue 1746: #​1746
.. _issue 1977: #​1977
.. _pull 1978: #​1978
.. _issue 1980: #​1980
.. _PEP 489: https://peps.python.org/pep-0489
.. _oss-fuzz: https://google.github.io/oss-fuzz/

.. _changes_7-8-2:


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added kind/dependencies Pull requests that update a dependency file skip/changelog If it should be excluded from changelog or Release notes. Such as infra, reverted PRs, etc. tests/skip This PR does not require integration tests to be run. labels Jun 11, 2025
@sourcery-ai
Copy link

sourcery-ai bot commented Jun 11, 2025

Reviewer's Guide

This PR updates the coverage dependency in the devcontainer requirements to v7.9.0 by editing the version string in the requirements file.

File-Level Changes

Change Details Files
Bump coverage[toml] version
  • Change coverage[toml] from 7.8.2 to 7.9.0
.devcontainer/alma9/requirements.txt

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@has-bot
Copy link
Member

has-bot commented Jun 11, 2025

This PR does not require integration tests to be run.


Comment generated by an automation.

@codecov
Copy link

codecov bot commented Jun 11, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.11%. Comparing base (254edf1) to head (463d002).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1472   +/-   ##
=======================================
  Coverage   96.11%   96.11%           
=======================================
  Files          72       72           
  Lines        5176     5176           
  Branches      895      895           
=======================================
  Hits         4975     4975           
  Misses        119      119           
  Partials       82       82           
Flag Coverage Δ
centos-linux-7 91.63% <ø> (ø)
centos-linux-8 92.49% <ø> (ø)
centos-linux-9 92.61% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.9.0 chore(deps): update dependency coverage to v7.9.1 Jun 13, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 8bf2fbe to 1db6069 Compare June 13, 2025 14:45
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.9.1 chore(deps): update dependency coverage to v7.9.2 Jul 3, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 1db6069 to a502844 Compare July 3, 2025 16:43
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.9.2 chore(deps): update dependency coverage to v7.10.0 Jul 24, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from a502844 to 35208f2 Compare July 24, 2025 20:57
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.0 chore(deps): update dependency coverage to v7.10.1 Jul 27, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 35208f2 to 8ec5e67 Compare July 27, 2025 17:58
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.1 chore(deps): update dependency coverage to v7.10.2 Aug 4, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 8ec5e67 to f6b1455 Compare August 4, 2025 14:28
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.2 chore(deps): update dependency coverage to v7.10.3 Aug 11, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from f6b1455 to 6a96e3f Compare August 11, 2025 02:23
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.3 chore(deps): update dependency coverage to v7.10.4 Aug 17, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 6a96e3f to 77e71bd Compare August 17, 2025 00:59
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.4 chore(deps): update dependency coverage to v7.10.5 Aug 23, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 77e71bd to a52ef24 Compare August 23, 2025 16:45
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.5 chore(deps): update dependency coverage to v7.10.6 Aug 31, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from a52ef24 to 0f21acc Compare August 31, 2025 10:56
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 0f21acc to 6786d68 Compare September 21, 2025 21:00
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.6 chore(deps): update dependency coverage to v7.10.7 Sep 21, 2025
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.10.7 chore(deps): update dependency coverage to v7.11.0 Oct 15, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 6786d68 to c007ed6 Compare October 15, 2025 15:38
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.11.0 chore(deps): update dependency coverage to v7.11.1 Nov 7, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from c007ed6 to 6ad7ffa Compare November 7, 2025 12:05
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 6ad7ffa to 3362465 Compare November 8, 2025 22:03
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.11.1 chore(deps): update dependency coverage to v7.11.2 Nov 8, 2025
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.11.2 chore(deps): update dependency coverage to v7.11.3 Nov 10, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 3362465 to 463d002 Compare November 10, 2025 00:36
@renovate renovate bot changed the title chore(deps): update dependency coverage to v7.11.3 chore(deps): update dependency coverage to v7.12.0 Nov 18, 2025
@renovate renovate bot force-pushed the renovate/coverage-7.x branch from 463d002 to 2a6dc89 Compare November 18, 2025 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/dependencies Pull requests that update a dependency file skip/changelog If it should be excluded from changelog or Release notes. Such as infra, reverted PRs, etc. tests/skip This PR does not require integration tests to be run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants